Signals having transitions between binary levels are generated from many different devices. For example, optical scanners have been used to read encoded information on bar code labels and generate analog signals comprised of substantially binary levels. Bar codes typically consist of a series of parallel light and dark rectangular areas of varying widths. The light areas are often referred to as "spaces" and the dark areas as "bars". Different widths of bars and spaces are selected in order to define different characters of a bar code.
A bar code label is typically read by a scanner which detects reflected and/or diffracted light from the bars and spaces comprising the characters. One common method of illuminating the bar code label is by use of a scanning laser beam, in which case the reflected light is detected by an optical detector. The detector generates an electrical signal having an amplitude determined by the intensity of the collected light. Another method for illuminating the bar code label is by use of a uniform light source with an array of optical detectors connected to an analog shift register (commonly called a charge-coupled device or CCD). In such a technique, as with a scanning laser, an electrical signal is generated having an amplitude determined by the intensity of the collected light. In either the scanning laser or CCD technique, the amplitude of the electrical signal has one level for dark bars and a second level for light spaces. The precise amplitudes of the two levels, however, are not known prior to scanning. As a label is scanned, positive-going transitions and negative-going transitions in the electrical signal occur, signifying transitions between bars and spaces. The transitions in the electrical signal are not perfectly sharp but may be gradual or noisy, thus making it difficult to determine the precise instant at which the transition has occurred. Inaccuracies in determining transition points may cause a bar code label to be misread.
Several techniques in signal processing have been developed for the purpose of determining transitions with greater accuracy. One such technique involves the detection of zero crossings of the second time derivative of the input signal. The benefits of using a second derivative signal processing method for bar code readers are well known and are set forth, for example, in U.S. Pat. No. 4,000,397 entitled "Signal Processor Method and Apparatus" (issued Dec. 28, 1976).
Derivatives of the input-signal in scanning systems are typically generated in an analog fashion by RC circuits. Differentiation circuits for obtaining analog derivatives of the input signal are well known by those skilled in the art and primarily comprise one or more operational amplifiers along with resistors and capacitors. Such differentiation circuits implement for the first derivative a transfer function having a zero at the origin and a single pole chosen beyond the highest frequency of interest. For the second derivative, such circuits implement a transfer function having two zeros at the origin and two poles chosen beyond the highest frequency of interest.
As the demand for accuracy and versatility in scanners continues to grow, conventional implementation methods of the second derivative technique may experience limitations. One such limitation is the ability to reject noise in the high frequency regions. As system performance is strongly affected by noise present in such regions, conventional implementations usually require the addition of a relatively complex low pass filter in the signal processing chain. Further, susceptibility to noise interference is affected by the fact that, while noise power tends to increase at higher frequencies, input signal power tends to roll off at such frequencies. The differentiation operation used in the conventional method to obtain the first or second derivative signals provides little or no attenuation outside the bandwidth of interest (i.e., the frequency band that contains most of the energy resulting from the light reflected from the symbol) and is therefore susceptible to high frequency noise.
A second limitation, related to the first, is that the conventional differentiator circuit does not exhibit flat group delay, or linear phase response, over the frequency band of interest. Group delay may be defined as the delay time of a circuit or system at various frequency values. A system exhibiting "flat" group delay has a relatively uniform delay time over the bandwidth of interest. Such a system is therefore said to have linear phase response. A system that does not exhibit flat group delay has relatively nonuniform or varying delay times dependent upon input signal frequency. Such a system is therefore said to have nonlinear phase response. Bar code scanner systems utilizing conventional differentiator circuits may, as a result of not having flat group delay, distort pulse shapes leading to errors in detecting pulse widths.
This type of distortion may be illustrated with reference to FIG. 1. FIG. 1 is a graph comparing the output O.sub.1 of a low pass filter having nonconstant group delay compared to the output O.sub.2 of an ideal filter having linear phase response or constant group delay in response to an input pulse P. The output O.sub.1 of the filter with nonconstant group delay exhibits asymmetry and over/undershoot resulting from a nonlinear phase characteristic, possibly leading to incorrect or unsuccessful decoding of the symbol. To avoid distorting the shapes of pulses that occur in a bar code signal processing system, it is thus highly desirable that the entire system exhibit linear phase response or, equivalently, constant group delay.
Another related problem may occur while attempting to detect the zero crossings of the second derivative signal. Typically, the first derivative of the input signal is looked to in order to determine the time periods during which a valid zero crossing of the second derivative signal may occur. Zero crossings of the second derivative signal are considered valid if occurring during a portion of the first derivative signal peak. However, a common problem in conventional systems is that the first and second derivative signals are not properly aligned in time because of temperature and frequency dependent delays in the first and second differentiator circuitry. Significant misalignment of the first and second derivative signals may occur causing missed zero crossings or detection of false zero crossings of the second derivative signal.
Further problems have been created by increasing demand for greater depth of field in handheld scanners. Greater depth of field requirements result in a larger range of signal amplitudes leading to the potential for clipping of the input signals or derivative signals. Clipping typically occurs when a signal is limited by a positive or negative voltage supply level. Although enlarging the supply voltage may increase the dynamic range of operation and thereby minimize clipping, there is also a benefit in keeping power and voltage levels low to accommodate smaller, lighter and cheaper handheld scanners. Moreover, greater depth of field in scanners further accentuates the noise problems mentioned above as higher frequencies are generated as a result of using smaller labels and reading labels at longer distances. Reading labels at longer distances also reduces the strength of the input signal thus increasing the need to reduce the effects of noise.